using System;
using System.Collections.Generic;
using System.Text;

using RRHH.Competencias.DataAccessLayer.Generic;
using RRHH.Competencias.DataAccessLayer.SqlServerProvider;
using RRHH.Competencias.Entities;

namespace RRHH.Competencias.DataAccessLayer
{
    /// <summary>
    /// Clase que provee de instancias de objetos para el acceso a datos
    /// </summary>
    public static class DALProvider
    {
        public static IDALColaborador GetDALColaborador()
        {
            return new DALSqlServerColaborador();
        }

        public static IDALBusquedaGenerica GetDALBusquedaGenerica()
        {
            return new DALSqlServerDALBusquedaGenerica();
        }

        public static IDALSector GetDALSector()
        {
            return new DALSqlServerSector();
        }

        public static IDALEnumerador<T> GetDALEnumerador<T>() where T : ObjetoABM, new()
        {
            return new DALSqlServerEnumerador<T>();
        }


        public static IDALCapacidad GetDALCapacidad()
        {
            return new DALSqlServerCapacidad();
        }

        public static IDALProceso GetDALProceso ()
        {
            return new DALSqlServerProceso();
        }

        public static IDALTarea GetDALTarea ()
        {
            return new DALSqlServerTarea();
        }

        public static IDALPuesto GetDALPuesto ()
        {
            return new DALSqlServerPuesto();
        }

        public static IDALReporteDinamico GetDALReporteDinamico ()
        {
            return new DALSqlServerReporteDinamico();
        }

        public static IDALCurso GetDALCurso ()
        {
            return new DALSqlServerCurso();
        }

        public static IDALCapacidadCurso GetDALCapacidadCurso()
        {
            return new DALSqlServerCapacidadCurso();
        }

        public static IDALPersona GetDALPersona ()
        {
            return new DALSqlServerPersona();
        }



        public static IDALFuncion GetDALFuncion ()
        {
            return new SqlServerDALFuncion();
        }

        public static IDALPermiso GetDALPermiso ()
        {
            return new SqlServerDALPermiso();
        }

        public static IDALUsuario GetDALUsuario ()
        {
            return new SqlServerDALUsuario();
        }
    }
}
